Control algorithm for brushless DC motor/blower system

ABSTRACT

An apparatus and method for controlling a brushless direct current motor having a pulse width modulated variable frequency drive in a blower system so that the blower system provides a specific fluid flow. A start-up program causes the motor to ramp up to approximately a predetermined steady state speed. A required blower torque is calculated by operating on a table of blower constants, a selected flow rate and a motor speed which is read from a commutation Hall sensor in the motor. A developed motor torque is calculated by operating on a table of motor specific constants, a modulation index and the motor speed taken from the commutation Hall sensor. The calculated required blower torque is repeatedly compared with the calculated developed motor torque. The modulation index to the pulse width modulated variable frequency drive is modified to force the developed motor torque to converge with the required blower torque in a steady state.

CROSS-REFERENCE TO PROVISIONAL APPLICATION(S)

This application claims the benefit of U.S. Provisional Application No. 60/160,378, filed Oct. 19, 1999.

BACKGROUND OF THE INVENTION

The invention relates to a motor controller and more particularly to a motor controller for driving a fluid impeller and still more particularly to a motor controller for driving a fluid impeller to provide a specific fluid flow rate.

It is known to employ electric motors to drive fluid impellers such as fan blades or blower cages in air moving apparatus. Such apparatus are typically used in heating, ventilation and air conditioning applications.

It is further known that heating, ventilation and air conditioning systems require a constant fluid flow in order to operate efficiently. Fluid resistance in the ducting of such systems typically varies with time as a result of various in fluid paths and duct openings. For example, every adjustment of a ventilation opening causes a fluid resistance change in the ducting.

It is known that blower torque must be adjusted to compensate for variable fluid resistance if constant fluid flow is to be maintained.

Various methods and apparatus are known to adjust blower torque in response to variations in fluid resistance or load. Typically, fluid flow may be measured directly by fluid flow transducers which are immersed in the fluid flow path. An electrical signal is typically fed back from the transducers to a microprocessor system or an electric circuit which is designed to adjust the speed of a blower motor to approach a predetermined constant value. Such systems are often too expensive or comprise components that are too large for use in practical heating, ventilation and air conditioning applications.

It is known that the magnitudes of a phase current in a blower motor drive circuit is related to the magnitude of fluid flow which is impelled by the blower. It is further known to provide a constant fluid flow by comparing a measured phase current of a blower motor drive circuit with an empirically determined ideal reference phase current for a specific constant fluid flow to determine an error phase current signal. The empirically determined reference phase current value is typically stored in a look-up table in the memory of a microprocessor system. It is further known to manipulate an error phase current signal so that it is suitable for input as an index to a pulse width modulator in a motor control circuit wherein the motor control circuit is caused to change motor speed to reduce the error phase current signal. The error phase current signal is reduced as the measured motor current approaches the ideal constant flow reference phase current.

Such methods may provide imprecise flow control because phase currents are known to fluctuate and are typically noisy. Furthermore such methods require added cost because they require current measurement feedback loops.

It is desirable to provide a constant fluid flow motor controller of reduced complexity by means not requiring direct measurement of fluid flow rate or motor current nor requiring any dedicated feedback sensor components.

SUMMARY OF THE INVENTION

Accordingly, the invention provides a specific fluid flow motor controller by employing a theoretically derived algorithm to operate on critical motor parameters internal to a variable frequency drive that utilizes pulse width modulation.

The algorithm of the invention employs at least a second-order polynomial equation for describing blower torque, as follows:

T _(b) =A _(2F) N _(b) ² +A _(1f) N _(b) +A _(0F)  (1)

wherein T_(b) is the torque required by the blower at speed N_(b) to deliver a specific flow rate and A_(2F), A_(1F) and A_(0F) are specific blower constants of proportionality for the required flow rate F.

Equation (1) characterizes the steady-state control relationship between the blower speed N_(b) and the required blower torque to deliver the desired rate of fluid flow. The set of constants of proportionality A_(2F), A_(1F) and A_(0F) are deduced uniquely for each blower design. The size of the constant set for varying F is chosen appropriately to meet the required range of flow control.

The algorithm of the invention further employs another at least second-order polynomial equation for describing motor torque, as follows:

T _(m) =B _(2M) N _(m) ² +B _(1M) N _(m) +B _(0M)  (2)

wherein T_(m) is the torque produced by the brushless direct current motor at a speed N_(m) while operating with a specific modulation index M and B_(2M), B_(1M) and B_(0M) are specific motor constants of proportionality for the modulation index M.

Equation (2) characterizes the steady control relationship between a brushless direct current motor speed N_(m) and the developed motor torque for the operating modulation index. The set of constants or proportionality B_(2M), B_(1M) and B_(0M) are deduced uniquely for each brushless direct current motor and drive control electronics design to be used. The size of the constant set for varying R is chosen to meet the required fineness of control.

The invention employs a microprocessor system to implement a steady state control algorithm and a transient control algorithm. The transient control algorithm comprises a start-up procedure which controls the motor/blower system until it approaches a steady state condition. Under steady state conditions, T_(b)=T_(m) if N_(b)=N_(m)=N as when the motor is directly attached to the blower. Otherwise, the product of motor torque and speed equals the product of blower torque and speed.

When the control system is started it executes the transient control algorithm for a start-up period. During the start-up period the microprocessor system changes the modulation index of the controller to cause the motor speed to ramp up from rest or zero rotations per minute to a desired steady state speed. The microprocessor system computes the speed value numerically by manipulating an output signal from a Hall sensor which is typically used for commutation of the brushless direct current motor. After the start-up period, the microprocessor system executes the steady state control algorithm. The start-up period is chosen based upon the rotational inertia of the particular motor/blower system so that the speed will reach the desired steady state value before the end of the start up period.

While executing the steady state control algorithm, the microprocessor system calculates the required blower torque T_(b) using equation (1). The microprocessor system reads a user input, typically a selector switch bank, which provides a desired fluid flow rate signal (ie., an input value for F) and selects the matching constants A_(2F), A_(1F), and A_(0F) from memory. The microprocessor system computes the motor speed by manipulating the output of the commutation Hall sensor. The microprocessor system calculates the required blower torque using equation (1) to operate on the selected flow constants and actual motor speed.

While executing the steady state control algorithm, the microprocessor system also calculates the developed motor torque T_(m) by using equation (2). The motor speed is taken from the commutation Hall sensor and the motor constants B_(2M), B_(1M) and B_(0M) are read from memory as a function of the operating modulation index.

While executing the steady state algorithm the microprocessor system compares the computed values of T_(b) and T_(m) and adjusts the modulation index to force T_(b) and T_(m) to converge. If T_(b)=T_(m) the microprocessor system makes no changes to the modulation index. If T_(b)>T_(m) the microprocessor system modifies the modulation index to cause T_(m) to increase. If T_(b)<T_(m) the microprocessor system modifies the modulation index to cause T_(m) to decrease. The microprocessor system waits for a settle time after each modification of the modulation index wherein the settle time is determined by the motor/blower system rotational inertia. The microprocessor system continuously repeats the steps of the steady state algorithm.

Again, the foregoing assumes that N_(b)=N_(m)=N. The foregoing also assumes that the main supply voltage is constant. However, the algorithm may optionally apply corrections for either, including for supply voltage variation where improved flow control resolution is required.

It is an advantage of the invention to provide a specific fluid flow rate without the need for any electric current sensor or electric current feedback.

BRIEF DESCRIPTION OF THE DRAWINGS

There are shown in the drawings certain exemplary embodiments of the invention as presently preferred. It should be understood that the invention is not limited to the embodiments disclosed as examples, and is capable of variation within the scope of the appended claims. In the drawings,

The sole FIGURE is a block diagram view of a motor/blower system having a brushless direct current motor, wherein the motor/blower system utilizes a control algorithm in accordance with the invention which in response to a commutation Hall sensor input signal provides a modulation index output signal to a variable-frequency motor drive to adjust motor speed.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

With reference to the FIGURE, the specific flow motor controller 10 of the invention comprises means 15 for detecting a signal from the commutation Hall sensor in a brushless direct current motor 14 in communication with means 20 for signal manipulation, preferably a microprocessor system or digital signal processor, means 18 for producing an electrical signal(“selector means”) to represent a specific fluid flow rate, preferably a switch bank, in communication with the manipulation means, and memory means to store electrical signals which represent a plurality of numeric constant values. The manipulation means is in electrical communication with a variable frequency drive 12 which uses pulse width modulation wherein the manipulation means is capable of modifying a modulation index to the variable frequency drive. This changes the speed of the motor 14 which changes the speed of the blower 16.

The control circuitry (eg., the ‘manipulation means’) preferably comprises a micro-device processing unit such as a microprocessor or micro-controller or the like, or else an integrated product like a digital signal processor. Generally, a microprocessor comprises a general use instruction code execution device. In distinction, a micro-controller is more of a specific use device, perhaps characterized by having a simplified instruction set and being designed to work with smaller address space than other microprocessors. These simplifications plus others that realize various input-output services that would otherwise be realized on separate chips, have the effect of reducing the total parts cost in a micro-controller system, an important consideration if the micro-device is to be designed into a manufactured product for which cost containment is paramount.

Whereas nowadays high-end micro-devices have 32-bit, 64-bit and beyond registers, there remains ample applications for highly economical 8-bit micro-devices, again especially in cases where cost is paramount. Some of the more popular 8-bit microprocessors and micro-controllers include those products of Intel and Motorola such as the Intel 8080 or Motorola's MC6800, MC6805 and/or MC68HC11. An example digital signal processor would include Texas Instrument's popular 16-bit digital signal processor, model no. TMS32024X.

Briefly, the invention involves some of the following highlights. The manipulation means executes program steps which change the modulation index of the variable frequency drive to cause a motor/blower rotational speed to ramp up from zero rotations per minute to a predetermined steady state speed within a predetermined start-up time. The steady state speed and start-up time are determined according to the rotational inertia of the particular motor/blower system and the required speed range.

An array of specific blower constant values, A_(2F), A_(1F) and A_(0F) are stored in memory wherein a specific flow rate F serves as an index to reference the proper set of constants from the array. The specific flow rate F is determined by a selection from a selector means of a value for which the selector means provides a corresponding electrical signal. The manipulation means reads an input signal from the commutation Hall sensor to determine a motor rotational speed N_(m) which also determines the blower rotational speed N_(b). In a simple case, the motor speed is equal to the blower speed. The manipulation means processes the selected blower constant values A_(2F), A_(1F) and A_(0F) together with the blower rotational speed to determine the required steady state blower torque T_(b), as described by the at least second-order polynomial equation:

T _(b) =A _(2F) N _(b) ² +A _(1F) N _(b) +A _(0F).

An array of specific motor constant values B_(2M), B_(1M) and B_(0M) are stored in memory wherein a specific modulation index M serves as an index to reference the proper set of constants from the array. The manipulation means reads the modulation index M from the variable frequency drive. The manipulation means processes the appropriate motor constant values B_(2M), B_(1M) and B_(0M) together with the motor rotational speed N_(m) to determine the steady state motor torque T_(m) as described by another at least second-order polynomial equation:

 T _(m) =B _(2M) N _(m) ² +B _(1M) N _(m) +B _(0M).

The manipulation means compares the computed values of T_(b) and T_(m) and adjusts the modulation index to force T_(b) and T_(m) to converge. If T_(b)=T_(m) the manipulation means makes no changes to the modulation index. If T_(b)>T_(m) the manipulation means modifies the modulation index to cause T_(m) to increase. If T_(b)<T_(m) the manipulation means modifies the modulation index to cause T_(m) to decrease.

The manipulation means waits for a settle time after each modification of the modulation index wherein the settle time is determined by the motor/blower system rotational inertia. The manipulation means continuously repeats the steps of comparing T_(b) to T_(m) and causing the two results to converge by the modifying the modulation index.

The foregoing includes assumptions including that blower speed equals motor speed. The following more particularly describes aspects of the invention when that is not necessarily true.

A control apparatus is provided for controlling flow output of a dc brushless motor/blower system. The dc brushless motor/blower system has a dc brushless motor coupled to a blower such that a motor-torque by rotor-speed product (T_(m)×N_(m)) of the dc brushless motor substantially corresponds to a blower-torque by impeller-speed product (T_(b)×N_(b)) of the blower at steady state and where the ratio of rotor-speed to blower-speed (N_(m)/N_(b)) is known.

The control apparatus comprises a data processor and a motor drive, operably coupled to the data processor, which adjusts motor speed N_(m) in response to control signals from the data processor corresponding to a pulse width modulation index M.

A device is provided for serving the data processor information corresponding to flow command information F. Another device is provided for serving the data processor information corresponding to one of rotor speed N_(m) or impeller speed N_(b).

The data processor is operational to achieve the following:

fetch the most recent pulse width modulation index M, flow command information F, and the known ratio N_(m)/N_(b) from either storage or inputs;

solve for the other of impeller speed N_(b) or rotor speed N_(m);

solve for required blower torque T_(b) by a polynomial equation expanded through at least second order terms and such that the blower-torque equation's coefficients vary with the flow command information F according to:

T _(b) =A _(0F) +A _(1F) N _(b) +A _(2F) N _(b) ²+ . . . ,

including extracting the blower-torque equation's coefficients A_(0F), A_(1F), A_(2F) . . . , from storage according to the flow command value F;

solve for delivered motor torque T_(m) by another polynomial equation expanded through at least second order terms and such that the motor-torque equation's coefficients vary with the most recent pulse width modulation index M according to:

T _(m) =B _(0M) +B _(1M) N _(m) +B _(2M) N _(m) ²+ . . . ,

including extracting the motor-torque equation's coefficients B_(0M), B_(1M), B_(2M) . . . , from storage according to the most recent pulse width modulation index M;

compare, in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), otherwise the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)) and,

in any case, respond to inequality by signaling the motor drive with a succeeding most recent pulse width modulation index M which is modified to adjust the motor speed correspondingly.

The data processor preferably is further operational to idle for a pre-determined settling time after the activities of compare and respond (if any response), and then repeating all over. The data processor includes optional circuitry incorporating one of a micro-processor, a micro-controller, or a digital signal processor.

The recited activity of ‘responding’ as following the recited activity of ‘comparing,’ in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), further comprises:

not modifying the most recent pulse width modulation index M if the required blower-torque (required-T_(b)) is substantially the same as the delivered motor-torque (delivered-T_(m));

increasing the most recent pulse width modulation index M by a given increment if the required blower-torque (required-T_(b)) is not substantially the same as and is greater than the delivered motor-torque (delivered-T_(m)); and

decreasing the most recent pulse width modulation index M by a given decrement if the required blower-torque (required-T_(b)) is not substantially the same as and is less than the delivered motor-torque (delivered-T_(m)).

Alternatively, the recited activity of ‘responding’ as following the recited activity of ‘comparing’ the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)), further comprises:

not modifying the most recent pulse width modulation index M if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is substantially the same as the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m));

increasing the most recent pulse width modulation index M by a given increment if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is greater than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)); and

decreasing the most recent pulse width modulation index M by a given decrement if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is less than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)).

The pulse width modulation index M comprises a normalized ratio relating pulse ON time to total period time such that a pulse ON time of 50% the total period time corresponds to a value of pulse width modulation index M equaling 0.5, or a pulse ON time of 10% the total period time corresponds to a value of pulse width modulation index M equaling 0.1.

The device that serves the data processor information corresponding to the rotor speed N_(m) preferably comprises a commutation Hall sensor. The step of serving the controller information corresponding to flow command information F optionally further comprises either receiving the flow command information F from an input device or extracting it from a database.

The invention having been disclosed in connection with the foregoing variations and examples, additional variations will now be apparent to persons skilled in the art. The invention is not intended to be limited to the variations specifically mentioned, and accordingly reference should be made to the appended claims rather than the foregoing discussion of preferred examples, to assess the scope of the invention in which exclusive rights are claimed. 

We claim:
 1. A method having an automatic controller of a dc brushless motor/blower system providing a specified flow output, comprising the steps of: providing a dc brushless motor/blower system having a dc brushless motor coupled to a blower such that a motor-torque by rotor-speed product (T_(m)×N_(m)) of the dc brushless motor substantially corresponds to a blower-torque by impeller-speed product (T_(b)×N_(b)) of the blower at steady state and where the ratio of rotor-speed to blower-speed (N_(m)/N_(b)) is known; providing a controller linked to a motor drive that adjusts motor speed N_(m) in response to control signals from the controller corresponding to a pulse width modulation index M; serving the controller information corresponding to flow command information F; serving the controller information corresponding to one of rotor speed N_(m) or impeller speed N_(b) and solving for the other of impeller speed N_(b) or rotor speed N_(m) by the known ratio N_(m)/N_(b); solving for required blower torque T_(b) by a polynomial equation expanded through at least second order terms and such that the blower-torque equation's coefficients vary with the flow command information F according to: T _(b) =A _(0F) +A _(1F) N _(b) +A _(2F) N _(b) ²+ . . . , including extracting the blower-torque equation's coefficients A_(0F), A_(1F), A_(2F) . . . , from a database according to the flow command value F; solving for delivered motor torque T_(m) by another polynomial equation expanded through at least second order terms and such that the motor-torque equation's coefficients vary with the most recent pulse width modulation index M according to: T _(m) =B _(0M) +B _(1M) N _(m) +B _(2M) N _(m) ²+ . . . , including extracting the motor-torque equation's coefficients B_(0M), B_(1M), B_(2M) . . . , from a database according to the most recent pulse width modulation index M; comparing, in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), otherwise the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)) and, in any case, responding to inequality by signaling the motor drive with a succeeding most recent pulse width modulation index M which is modified to adjust the motor speed correspondingly.
 2. The method of claim 1 further comprising: idling for a pre-determined settling time, and then returning to the step of serving the controller information corresponding to flow command information F, and repeating the succeeding steps.
 3. The method of claim 1 wherein the step of responding as following the step of comparing, in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), further comprises: not modifying the most recent pulse width modulation index M if the required blower-torque (required-T_(b)) is substantially the same as the delivered motor-torque (delivered-T_(m)); increasing the most recent pulse width modulation index M by a given increment if the required blower-torque (required-T_(b)) is not substantially the same as and is greater than the delivered motor-torque (delivered-T_(m)); and decreasing the most recent pulse width modulation index M by a given decrement if the required blower-torque (required-T_(b)) is not substantially the same as and is less than the delivered motor-torque (delivered-T_(m)).
 4. The method of claim 1 wherein the step of responding as following the step of comparing the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)), further comprises: not modifying the most recent pulse width modulation index M if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is substantially the same as the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)); increasing the most recent pulse width modulation index M by a given increment if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is greater than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)); and decreasing the most recent pulse width modulation index M by a given decrement if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is less than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)).
 5. The method of claim 1 wherein the pulse width modulation index M comprises a normalized ratio relating pulse ON time to total period time such that a pulse ON time of 50% the total period time corresponds to a value of pulse width modulation index M equaling 0.5, or a pulse ON time of 10% the total period time corresponds to a value of pulse width modulation index M equaling 0.1.
 6. The method of claim 1 wherein the step of serving the controller information corresponding to flow command information F further comprises: one of receiving from an input device or extracting from a database the flow command information F.
 7. The method of claim 1 wherein the step of serving the controller information corresponding to the rotor speed N_(m) further comprises determining the rotor speed from a commutation Hall sensor's output.
 8. The method of claim 1 wherein the blower has a given impeller chosen from one of a fan blade or a blower wheel.
 9. Apparatus for controlling flow output of a dc brushless motor/blower system that has a dc brushless motor coupled to a blower such that a motor-torque by rotor-speed product (T_(m)×N_(m)) of the dc brushless motor substantially corresponds to a blower-torque by impeller-speed product (T_(b)×N_(b)) of the blower at steady state and where the ratio of rotor-speed to blower-speed (N_(m)/N_(b)) is known, said apparatus comprising: a data processor; a motor drive, operably coupled to the data processor, which adjusts motor speed N_(m) in response to control signals from the data processor corresponding to a pulse width modulation index M; a device serving the data processor information corresponding to flow command information F; another device serving the data processor information corresponding to one of rotor speed N_(m) or impeller speed N_(b); wherein said data processor is operational to: fetch the most recent pulse width modulation index M, flow command information F, and the known ratio N_(m)/N_(b) from either storage or inputs; solve for the other of impeller speed N_(b) or rotor speed N_(m); solve for required blower torque T_(b) by a polynomial equation expanded through at least second order terms and such that the blower-torque equation's coefficients vary with the flow command information F according to: T _(b) =A _(0F) A _(1F) N _(b) +N _(b) +A _(2F) N _(b) ²+ . . . , including extracting the blower-torque equation's coefficients A_(0F), A_(1F), A_(2F) . . . , from storage according to the flow command value F; solve for delivered motor torque T_(m) by another polynomial equation expanded through at least second order terms and such that the motor-torque equation's coefficients vary with the most recent pulse width modulation index M according to: T _(m) =B _(0M) +B _(1M) N _(m) +B _(2M) N _(m) ²+ . . . , including extracting the motor-torque equation's coefficients B_(0M), B_(1M), B_(2M) . . . , from storage according to the most recent pulse width modulation index M; compare, in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), otherwise the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)) and, in any case, respond to inequality by signaling the motor drive with a succeeding most recent pulse width modulation index M which is modified to adjust the motor speed correspondingly.
 10. The apparatus of claim 9 wherein the data processor is further operational to: idle for a pre-determined settling time after the activities of compare and respond (if any response), and then repeating all over.
 11. The apparatus of claim 9 wherein: the data processor includes circuitry incorporating one of a micro-processor, a micro-controller, or a digital signal processor.
 12. The apparatus of claim 9 wherein the activity of responding as following the activity of comparing, in cases of the ratio N_(m)/N_(b) being substantially unity, the required blower-torque (required-T_(b)) to the delivered motor-torque (delivered-T_(m)), further comprises: not modifying the most recent pulse width modulation index M if the required blower-torque (required-T_(b)) is substantially the same as the delivered motor-torque (delivered-T_(m)); increasing the most recent pulse width modulation index M by a given increment if the required blower-torque (required-T_(b)) is not substantially the same as and is greater than the delivered motor-torque (delivered-T_(m)); and decreasing the most recent pulse width modulation index M by a given decrement if the required blower-torque (required-T_(b)) is not substantially the same as and is less than the delivered motor-torque (delivered-T_(m)).
 13. The apparatus of claim 9 wherein the step of responding as following the step of comparing the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) to the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)) further comprises: not modifying the most recent pulse width modulation index M if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is substantially the same as the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)); increasing the most recent pulse width modulation index M by a given increment if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is greater than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)); and decreasing the most recent pulse width modulation index M by a given decrement if the product of required blower-torque by impeller-speed (required-T_(b)×N_(b)) is not substantially the same as and is less than the product of delivered motor-torque by rotor-speed (delivered-T_(m)×N_(m)).
 14. The apparatus of claim 9 wherein the pulse width modulation index M comprises a normalized ratio relating pulse ON time to total period time such that a pulse ON time of 50% the total period time corresponds to a value of pulse width modulation index M equaling 0.5, or a pulse ON time of 10% the total period time corresponds to a value of pulse width modulation index M equaling 0.1.
 15. The apparatus of claim 9 wherein said other device that serves the data processor information corresponding to the rotor speed N_(m) further comprises a commutation Hall sensor.
 16. An apparatus for providing a constant fluid flow comprising: a brushless direct current motor having at least one rotor, at least one commutation Hall sensor and at least one variable frequency pulse width modulated drive; at least one fluid impeller attached to said at least one rotor wherein said at least one fluid impeller is constrained to rotate with an annular velocity equal to an angular velocity of said at least one rotor; means for calculating motor speed by manipulating a signal from said at least one commutation Hall sensor wherein said means for calculating a motor speed is in electrical communication with said commutation Hall sensor; means for storing and reading electrical signals to represent specific blower constant data and specific motor constant data; means to provide an electrical signal to represent a selected fluid flow rate; electrical signals representing an array of specific blower constant data wherein said array is indexed by an electrical signal representing a selected fluid flow rate; means for monitoring a modulation index of said variable frequency pulse width modulated drive; electrical signals representing an array of specific motor constant data wherein said array is indexed by an electrical signal representing said modulation index of said variable frequency pulse width modulated drive; means to calculate a required blower torque T_(b) by reading specific blower constant data A_(2F), A_(1F) and A_(0F)from memory as indexed by said electrical signal representing a selected flow rate F and manipulating said specific blower constant data together with said blower speed N_(b) according to the equation: T _(b) =A _(2F) N _(b) ² +A _(1F) N _(b) +A _(0F); means to calculate a developed motor torque T_(m) by reading specific motor constant data B_(2M), B_(1M) and B_(0M) from memory as indexed by an electrical signal representing the modulation index M of said variable frequency pulse width modulated drive, and manipulating said specific motor constant data together with said motor speed N_(m) according to the equation: T _(m) =B _(2M) N _(m) ² +B _(1M) N _(m) +B _(0M); means to compare the calculated values of required blower torque T_(b) to the calculated value of delivered motor torque T_(m): means to modify the modulation index of the variable frequency pulse width modulated drive to cause the delivered motor torque T_(m) to remain constant if T_(b)=T_(m); means to modify the modulation index of the variable frequency pulse width modulated drive to cause the delivered motor torque T_(m) to increase if T_(b)>T_(m); and means to modify the modulation index of the variable frequency pulse width modulated drive to cause the delivered motor torque T_(m) to decrease if T_(b)<T_(m).
 17. The apparatus of claim 16 further comprising means to modify said modulation index so as to cause said motor speed to increase from a specific speed approximating a steady state speed during a start-up period.
 18. The apparatus of claim 16 wherein said means to calculate motor speed, means for storing and reading electrical signals, means for monitoring a modulation index, means to calculate a required blower torque, means to calculate a developed motor torque, means to compare the required blower torque with the developed motor torque, and means to modify the modulation index of a variable frequency pulse width modulated drive comprises either a microprocessor system or a digital signal processor.
 19. A method of causing an impeller driven by a brushless direct current motor having a variable frequency pulse width modulated drive to provide a specific fluid flow, comprising the steps of: attaching a fluid impeller to a brushless direct current motor such that said fluid impeller is constrained to rotate with an angular velocity N equal to the angular velocity of said brushless direct current motor rotor; monitoring a magnitude of said angular velocity N by reading an angular velocity electrical signal from a commutation Hall sensor of said brushless direct current motor; maintaining an array of specific blower constant values A_(2F), A_(1F) and A_(0F) as indexed by a selected fluid flow rate F; maintaining an array of specific motor constant values B_(2M), B_(1M) and B_(0M) as indexed by a modulation index M of said variable frequency pulse width modulated drive; calculating a required blower torque T_(b) by multiplying a second entry A_(2F) of said blower constant array for a selected flow rate F by the motor speed squared, N², to obtain a first blower result, multiplying a first array entry A_(1F) of said blower constant array for a selected flow rate F by the motor speed N to obtain a second blower result, and adding said first blower result to said second blower result and to a zero^(th) array entry A_(0F) of said blower constant array for said selected flow rate F; calculating a developed motor torque T_(m) by multiplying a second entry B_(2M) of said motor constant array for the modulation index M by the motor speed squared, N², to obtain a first motor result, multiplying a first array entry B_(1M) of said motor constant array for the modulation index M by the motor speed N to obtain a second motor result, and adding said first motor result to said second motor result and to a zero^(th) array entry B_(0M) of said motor constant array for the modulation index M; comparing said required blower torque T_(b) to said developed motor torque T_(m); maintaining a constant modulation index M to said variable frequency pulse width modulated drive if the required blower torque T_(b) equals the delivered motor torque T_(m); modifying the modulation index M to said variable frequency pulse width modulated drive to increase the delivered motor torque T_(m) if the delivered motor torque T_(m) is less than the required blower torque T_(b); modifying the modulation index M to said variable frequency pulse width modulated drive to decrease the delivered motor torque T_(m) if the delivered motor torque T_(m) is greater than the required blower torque T_(b); and repeating the steps of monitoring the angular velocity N, calculating the required blower torque T_(b), calculating the developed motor torque T_(m), comparing the delivered motor torque T_(m) to the required blower torque T_(b) and maintaining and modifying the modulation index M, thereby causing the values of delivered motor torque T_(m) to converge with the required blower torque T_(b).
 20. The method of claim 19 further comprising the step of changing said modulation index during a start-up period to cause said motor speed to increase from zero to a specific speed approximating a steady state speed. 